/********************************Copyright (c)**********************************\
**
**                   (c) Copyright 2021, Main, China, QD.
**                           All Rights Reserved
**
**                                 By(wo4fisher)
**                           http://www.wo4fisher.com
**
**----------------------------------文件信息------------------------------------
** 文件名称: sram.c.c
** 创建人员: wht
** 创建日期: 2021-08-27
** 文档描述:
**
**----------------------------------版本信息------------------------------------
** 版本代号: V0.1
** 版本说明: 初始版本
**
**------------------------------------------------------------------------------
\********************************End of Head************************************/

#include "sram.h"

#define Bank1_SRAM3_ADDR    ((u32)(0x60000000))

//void fsmc_sram_test(u16 x,u16 y)
//{
//  u32 i=0;
//  u8 temp=0;
//  u8 sval=0;  //在地址0读到的数据
//  //每隔4K字节,写入一个数据,总共写入256个数据,刚好是1M字节
//  for(i=0;i<1024*1024;i+=4096)
//  {
//    FSMC_SRAM_WriteBuffer(&temp,i,1);
//    temp++;
//  }
//  //依次读出之前写入的数据,进行校验
//  for(i=0;i<1024*1024;i+=4096)
//  {
//      FSMC_SRAM_ReadBuffer(&temp,i,1);
//
//    if(i==0)sval=temp;
//    else if(temp<=sval)break;//后面读出的数据一定要比第一次读到的数据大.
//    LCD_ShowxNum(x+15*8,y,(u16)(temp-sval+1)*4,4,16,0);//显示内存容量
//  }
//}

/**
 * [FSMC_SRAM_WriteBuffer 在指定地址(WriteAddr+Bank1_SRAM3_ADDR)开始,连续写入n个字节.]
 * * @Author wo4fisher
 * * @DateTime 2021-08-27
 * * @copyright [© 2021 wo4fisher，All rights reserved.]
 * * @license [GPL v3]
 * * @version [v1.0]
 * * @return   {[void]}
 * @param pBuffer            [字节指针]
 * @param WriteAddr          [要写入的地址]
 * @param NumHalfwordToWrite [要写入的字节数]
 */
void FSMC_SRAM_WriteBuffer(u8* pBuffer, u32 WriteAddr, u32 NumHalfwordToWrite)
{
    for (; NumHalfwordToWrite != 0; NumHalfwordToWrite--)
    {
        *(vu8*)(Bank1_SRAM3_ADDR + WriteAddr) = *pBuffer;
        WriteAddr++;
        pBuffer++;
    }
}
/**
 * [FSMC_SRAM_ReadBuffer 在指定地址((WriteAddr+Bank1_SRAM3_ADDR))开始,连续读出n个字节.]
 * * @Author wo4fisher
 * * @DateTime 2021-08-27
 * * @copyright [© 2021 wo4fisher，All rights reserved.]
 * * @license [GPL v3]
 * * @version [v1.0]
 * * @return   {[void]}
 * @param pBuffer           [字节指针]
 * @param ReadAddr          [要读出的起始地址]
 * @param NumHalfwordToRead [要写入的字节数]
 */
void FSMC_SRAM_ReadBuffer(u8* pBuffer, u32 ReadAddr, u32 NumHalfwordToRead)
{
    for (; NumHalfwordToRead != 0; NumHalfwordToRead--)
    {
        *pBuffer++ = *(vu8*)(Bank1_SRAM3_ADDR + ReadAddr);
        ReadAddr++;
    }
}
/**
 * [fsmc_sram_test_write 测试函数 在指定地址写入1个字节]
 * * @Author wo4fisher
 * * @DateTime 2021-08-27
 * * @copyright [© 2021 wo4fisher，All rights reserved.]
 * * @license [GPL v3]
 * * @version [v1.0]
 * * @return   {[void]}
 * @param addr [地址]
 * @param data [要写入的数据]
 */
void fsmc_sram_test_write(u32 addr, u8 data)
{
    FSMC_SRAM_WriteBuffer(&data, addr, 1); //写入1个字节
}
/**
 * [fsmc_sram_test_read 读取1个字节]
 * * @Author wo4fisher
 * * @DateTime 2021-08-27
 * * @copyright [© 2021 wo4fisher，All rights reserved.]
 * * @license [GPL v3]
 * * @version [v1.0]
 * * @return   {[u8]}
 * @param  addr [要读取的地址]
 * @return      [读取到的数据]
 */
u8 fsmc_sram_test_read(u32 addr)
{
    u8 data;
    FSMC_SRAM_ReadBuffer(&data, addr, 1);
    return data;
}




/********************************End of File************************************/